package com.gwt.auth.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 用户缓存信息
 */
@Data
public class AuthUser implements Serializable {
    public AuthUser() {
        this.refreshCount = 0L;
        this.initDate = new Date();
    }

    /**
     * 用户ID（缓存ID）
     */
    private Object userId;

    /**
     * token
     */
    private String token;

    /**
     * 用户信息初始化时间
     */
    private Date initDate;

    /**
     * 用户登录时间
     */
    private Date loginDate;

    /**
     * token过期时间（与JWT失效时间一致）
     */
    private Date expDate;

    /**
     * token的刷新次数（每进行JWT认证一次，refreshCount + 1）
     */
    private long refreshCount;

    /**
     * token最大失效时间（暂时不实现功能）
     */
    private Date maxExpDate;

    /**
     * 上一次调用接口的操作时间
     */
    private Date lastDate;

    /**
     * 设备ip
     */
    private String ip;

    /**
     * 用户角色ID集合
     */
    private List<Object> roleIds;
}
